import { IPSAppDataEntity } from '../../app/dataentity/ipsapp-data-entity';
import { IPSControlItem } from '../ipscontrol-item';
import { IPSControlMDataContainer } from '../ipscontrol-mdata-container';
import { IPSControlObjectNavigatable } from '../ipscontrol-object-navigatable';
import { IPSControlXDataContainer } from '../ipscontrol-xdata-container';
import { IPSLayoutPanel } from '../panel/ipslayout-panel';
import { IPSDEContextMenu } from '../toolbar/ipsdecontext-menu';
import { IPSLanguageRes } from '../../res/ipslanguage-res';
import { IPSSysCss } from '../../res/ipssys-css';
import { IPSSysImage } from '../../res/ipssys-image';

/**
 *
 * @export
 * @interface IPSCalendarItem
 */
export interface IPSCalendarItem
  extends IPSControlItem,
    IPSControlXDataContainer,
    IPSControlMDataContainer,
    IPSControlObjectNavigatable {
  /**
   * 默认背景颜色
   * @type {string}
   */
  bKColor: string;

  /**
   * 默认文本颜色
   * @type {string}
   */
  color: string;

  /**
   * 动态样式表
   * @type {string}
   */
  dynaClass: string;

  /**
   * 项内置样式
   * @description 值模式 [部件成员样式] {DEFAULT：默认样式、 STYLE2：样式2、 STYLE3：样式3、 STYLE4：样式4 }
   * @type {( string | 'DEFAULT' | 'STYLE2' | 'STYLE3' | 'STYLE4')}
   */
  itemStyle: string | 'DEFAULT' | 'STYLE2' | 'STYLE3' | 'STYLE4';

  /**
   * 项标识
   * @type {string}
   */
  itemType: string;

  /**
   * 最大加载项数
   * @type {number}
   */
  maxSize: number;

  /**
   * 代码模型对象
   * @type {string}
   */
  modelObj: string;

  /**
   * 名称语言资源
   *
   * @type {IPSLanguageRes}
   */
  getNamePSLanguageRes(): IPSLanguageRes | null;

  /**
   * 应用实体对象
   *
   * @type {IPSAppDataEntity}
   */
  getPSAppDataEntity(): IPSAppDataEntity | null;

  /**
   * 上下文菜单对象
   *
   * @type {IPSDEContextMenu}
   */
  getPSDEContextMenu(): IPSDEContextMenu | null;

  /**
   * 项布局面板
   *
   * @type {IPSLayoutPanel}
   */
  getPSLayoutPanel(): IPSLayoutPanel | null;

  /**
   * 项界面样式表
   *
   * @type {IPSSysCss}
   */
  getPSSysCss(): IPSSysCss | null;

  /**
   * 项图标资源对象
   *
   * @type {IPSSysImage}
   */
  getPSSysImage(): IPSSysImage | null;

  /**
   * 支持编辑
   * @type {boolean}
   * @default false
   */
  enableEdit: boolean;
}
